<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Translator (computing)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Translator_(computing)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Translator_computing rootpage-Translator_computing skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Translator (computing)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><style data-mw-deduplicate="TemplateStyles:r1305433154">
/* start https://en.wikipedia.org/ */
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style>
<style data-mw-deduplicate="TemplateStyles:r1236090951">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hatnote{font-style:italic}.mw-parser-output div.hatnote{padding-left:1.6em;margin-bottom:0.5em}.mw-parser-output .hatnote i{font-style:normal}.mw-parser-output .hatnote+link+.hatnote{margin-top:-0.5em}@media print{body.ns-0 .mw-parser-output .hatnote{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div role="note" class="hatnote navigation-not-searchable">This article is about translation of programming languages. For translation of natural languages, see <a href="Natural_language_processing" title="Natural language processing">Natural language processing</a> and <a href="Machine_translation" title="Machine translation">Machine translation</a>.</div>
<style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1246091330">
/* start https://en.wikipedia.org/ */
.mw-parser-output .sidebar{width:22em;float:right;clear:right;margin:0.5em 0 1em 1em;background:var(--background-color-neutral-subtle,#f8f9fa);border:1px solid var(--border-color-base,#a2a9b1);padding:0.2em;text-align:center;line-height:1.4em;font-size:88%;border-collapse:collapse;display:table}body.skin-minerva .mw-parser-output .sidebar{display:table!important;float:right!important;margin:0.5em 0 1em 1em!important}.mw-parser-output .sidebar-subgroup{width:100%;margin:0;border-spacing:0}.mw-parser-output .sidebar-left{float:left;clear:left;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-none{float:none;clear:both;margin:0.5em 1em 1em 0}.mw-parser-output .sidebar-outer-title{padding:0 0.4em 0.2em;font-size:125%;line-height:1.2em;font-weight:bold}.mw-parser-output .sidebar-top-image{padding:0.4em}.mw-parser-output .sidebar-top-caption,.mw-parser-output .sidebar-pretitle-with-top-image,.mw-parser-output .sidebar-caption{padding:0.2em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-pretitle{padding:0.4em 0.4em 0;line-height:1.2em}.mw-parser-output .sidebar-title,.mw-parser-output .sidebar-title-with-pretitle{padding:0.2em 0.8em;font-size:145%;line-height:1.2em}.mw-parser-output .sidebar-title-with-pretitle{padding:0.1em 0.4em}.mw-parser-output .sidebar-image{padding:0.2em 0.4em 0.4em}.mw-parser-output .sidebar-heading{padding:0.1em 0.4em}.mw-parser-output .sidebar-content{padding:0 0.5em 0.4em}.mw-parser-output .sidebar-content-with-subgroup{padding:0.1em 0.4em 0.2em}.mw-parser-output .sidebar-above,.mw-parser-output .sidebar-below{padding:0.3em 0.8em;font-weight:bold}.mw-parser-output .sidebar-collapse .sidebar-above,.mw-parser-output .sidebar-collapse .sidebar-below{border-top:1px solid #aaa;border-bottom:1px solid #aaa}.mw-parser-output .sidebar-navbar{text-align:right;font-size:115%;padding:0 0.4em 0.4em}.mw-parser-output .sidebar-list-title{padding:0 0.4em;text-align:left;font-weight:bold;line-height:1.6em;font-size:105%}.mw-parser-output .sidebar-list-title-c{padding:0 0.4em;text-align:center;margin:0 3.3em}@media(max-width:640px){body.mediawiki .mw-parser-output .sidebar{width:100%!important;clear:both;float:none!important;margin-left:0!important;margin-right:0!important}}body.skin--responsive .mw-parser-output .sidebar a>img{max-width:none!important}@media screen{html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-night .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-list-title,html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle{background:transparent!important}html.skin-theme-clientpref-os .mw-parser-output .sidebar:not(.notheme) .sidebar-title-with-pretitle a{color:var(--color-progressive)!important}}@media print{body.ns-0 .mw-parser-output .sidebar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><table class="sidebar nomobile nowraplinks"><tbody><tr><th class="sidebar-title"><a href="Execution_(computing)" title="Execution (computing)">Program execution</a></th></tr><tr><th class="sidebar-heading">
General concepts</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Computer_program" title="Computer program">Code</a></li>
<li>
<ul><li><a href="Compiler" title="Compiler">Compiler</a></li>
<li><a href="Compile_time" title="Compile time">Compile time</a></li>
<li><a href="Optimizing_compiler" title="Optimizing compiler">Optimizing compiler</a></li></ul></li>
<li><a href="Linker_(computing)" title="Linker (computing)"> Linking</a></li>
<li><a href="Execution_(computing)" title="Execution (computing)">Execution</a>
<ul><li><a href="Runtime_system" title="Runtime system">Runtime system</a></li>
<li><a href="Executable" title="Executable">Executable</a></li>
<li><a href="Interpreter_(computing)" title="Interpreter (computing)">Interpreter</a></li>
<li><a href="Virtual_machine" title="Virtual machine">Virtual machine</a></li></ul></li>
<li><a href="Intermediate_representation" title="Intermediate representation">Intermediate representation</a> (IR)</li></ul></td>
</tr><tr><th class="sidebar-heading">
Types of code</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Source_code" title="Source code">Source code</a></li>
<li><a href="Object_code" title="Object code">Object code</a></li>
<li><a href="Bytecode" title="Bytecode">Bytecode</a></li>
<li><a href="Machine_code" title="Machine code">Machine code</a></li>
<li><a href="Microcode" title="Microcode">Microcode</a></li></ul></td>
</tr><tr><th class="sidebar-heading">
Compilation strategies</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Ahead-of-time_compilation" title="Ahead-of-time compilation">Ahead-of-time</a> (AOT)</li>
<li><a href="Just-in-time_compilation" title="Just-in-time compilation">Just-in-time</a> (JIT)
<ul><li><a href="Tracing_just-in-time_compilation" title="Tracing just-in-time compilation">Tracing just-in-time</a></li>
<li><a href="Compile_and_go_system" title="Compile and go system">Compile and go system</a></li></ul></li>
<li><a href="Precompilation" class="mw-redirect" title="Precompilation">Precompilation</a></li>
<li><a href="Source-to-source_compiler" title="Source-to-source compiler">Transcompilation</a></li>
<li><a href="Dynamic_recompilation" title="Dynamic recompilation">Recompilation</a></li></ul></td>
</tr><tr><th class="sidebar-heading">
Notable runtimes</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="Android_Runtime" title="Android Runtime">Android Runtime</a> (ART)</li>
<li><a href="BEAM_(Erlang_virtual_machine)" title="BEAM (Erlang virtual machine)">BEAM</a> (Erlang)</li>
<li><a href="Common_Language_Runtime" title="Common Language Runtime">Common Language Runtime</a> (CLR) and <a href="Mono_(software)#Code_Execution_Engine" title="Mono (software)">Mono</a></li>
<li><a href="CPython" title="CPython">CPython</a> and <a href="PyPy" title="PyPy">PyPy</a></li>
<li><a href="Crt0" title="Crt0">crt0</a> (<a href="C_(programming_language)" title="C (programming language)">C</a> target-specific initializer)</li>
<li><a href="Java_virtual_machine" title="Java virtual machine">Java virtual machine</a> (JVM)</li>
<li><a href="LuaJIT" title="LuaJIT">LuaJIT</a></li>
<li><a href="Objective-C" title="Objective-C">Objective-C</a> and <a href="Swift_(programming_language)" title="Swift (programming language)">Swift</a>'s</li>
<li><a href="V8_(JavaScript_engine)" title="V8 (JavaScript engine)">V8</a> and <a href="Node.js" title="Node.js">Node.js</a></li>
<li><a href="Zend_Engine" title="Zend Engine">Zend Engine</a> (PHP)</li></ul></td>
</tr><tr><th class="sidebar-heading">
Notable compilers & toolchains</th></tr><tr><td class="sidebar-content hlist">
<ul><li><a href="GNU_Compiler_Collection" title="GNU Compiler Collection">GNU Compiler Collection</a> (GCC)</li>
<li><a href="LLVM" title="LLVM">LLVM</a> and <a href="Clang" title="Clang">Clang</a></li>
<li><a href="Microsoft_Visual_C%2B%2B" title="Microsoft Visual C++">MSVC</a></li>
<li><a href="Glasgow_Haskell_Compiler" title="Glasgow Haskell Compiler">Glasgow Haskell Compiler</a> (GHC)</li></ul></td>
</tr><tr><td class="sidebar-navbar"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></td></tr></tbody></table>
<p class="mw-empty-elt">
</p><p>A <b>translator</b> or <b>programming language processor</b> is a <a href="Computer_program" title="Computer program">computer program</a> that converts the programming instructions written in human convenient form into machine language codes that the computers understand and process. It is a generic term that can refer to a <a href="Compiler" title="Compiler">compiler</a>, <a href="Assembler_(computing)" class="mw-redirect" title="Assembler (computing)">assembler</a>, or <a href="Interpreter_(computing)" title="Interpreter (computing)">interpreter</a>—anything that converts code from one computer language into another.<sup id="cite_ref-MCT_1-0" class="reference"><a href="#cite_note-MCT-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-Intel_1983_SH_2-0" class="reference"><a href="#cite_note-Intel_1983_SH-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> These include translations between <a href="High-level_language" class="mw-redirect" title="High-level language">high-level</a> and human-readable computer languages such as <a href="C%2B%2B" title="C++">C++</a> and <a href="Java_(programming_language)" title="Java (programming language)">Java</a>, intermediate-level languages such as <a href="Java_bytecode" title="Java bytecode">Java bytecode</a>, <a href="Low-level_language" class="mw-redirect" title="Low-level language">low-level languages</a> such as the <a href="Assembly_language" title="Assembly language">assembly language</a> and <a href="Machine_code" title="Machine code">machine code</a>, and between similar levels of language on different <a href="Computing_platform" title="Computing platform">computing platforms</a>, as well as from any of these to any other of these.<sup id="cite_ref-MCT_1-1" class="reference"><a href="#cite_note-MCT-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup>
</p><p>Software and hardware represent different levels of abstraction in computing. Software is typically written in high-level programming languages, which are easier for humans to understand and manipulate, while hardware implementations involve low-level descriptions of physical components and their interconnections. Translator computing facilitates the conversion between these abstraction levels.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup> Overall, translator computing plays a crucial role in bridging the gap between software and hardware implementations, enabling developers to leverage the strengths of each platform and optimize performance, power efficiency, and other metrics according to the specific requirements of the application.<sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Programming_language_processors">Programming language processors</h2></div>
<p>The software development process is noticeably different depending on the type of translator used by a developer, this of course differs from translator to translator. Stages of the development process that are influenced by a translator include the initial programming stage, the <a href="Debugging" title="Debugging">debugging</a> stage, and most notably the execution process. Factors that are affected during these stages include code performance, feedback speed for the debugging process, language features, and platform independence. Some of the more notable programming language processors used to translate code are <a href="Compiler" title="Compiler">compilers</a>, <a href="Interpreter_(computing)" title="Interpreter (computing)">interpreters</a>, and <a href="Assembly_language" title="Assembly language">assemblers</a>.<sup id="cite_ref-:0_5-0" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Compilers">Compilers</h3></div>
<p>Compiler software interacts with <a href="Source_code" title="Source code">source code</a> by converting it typically from a higher-level programming language into <a href="Object_code" title="Object code">object code</a> that can later be executed by the computer's <a href="Central_processing_unit" title="Central processing unit">central processing unit</a> (CPU).<sup id="cite_ref-:1_6-0" class="reference"><a href="#cite_note-:1-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> The object code created by the compiler consists of <a href="Machine_code" title="Machine code">machine-readable code</a> that the computer can process. This stage of the computing process is known as compilation. Utilizing a compiler leads to separation in the translation and execution process. After compilation, the new object code is saved separately from the source code resulting in the source code no longer being required for the execution process. With compiler programs, translation is a one-time process which results in efficient code that can be executed quickly any number of times.<sup id="cite_ref-:1_6-1" class="reference"><a href="#cite_note-:1-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p><p>There are clear benefits when translating high-level code with a compiler.<sup id="cite_ref-:2_7-0" class="reference"><a href="#cite_note-:2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Compilation leads to faster run time when executing the program. Since code is translated before execution, its results are optimized and fast.</li>
<li>Compilers are more ideal when protecting code from <a href="Plagiarism" title="Plagiarism">plagiarism</a> and preventing the use of source code from an unauthorized party.</li>
<li>Object code only needs to be created once when compiling source code.</li></ul>
<p>There are clear disadvantages when translating high-level code with a compiler.<sup id="cite_ref-:2_7-1" class="reference"><a href="#cite_note-:2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Object code produced during compilation is specific to a machine's <a href="Instruction_set_architecture" title="Instruction set architecture">instruction set architecture</a> (ISA). This results in object code that is dependent on a specific type of machine in order to run.</li>
<li>The debugging stage of the development process cannot start until the program is fully compiled. Errors are only viewable after compilation.</li>
<li>Any source code that is modified must be fully recompiled to be executed again.</li></ul>
<p>Some notable programming languages that utilize compilers include:<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><a href="C_(programming_language)" title="C (programming language)">C</a></li>
<li><a href="C%2B%2B" title="C++">C++</a></li>
<li><a href="COBOL" title="COBOL">COBOL</a></li>
<li><a href="Fortran" title="Fortran">Fortran</a></li>
<li><a href="PL/I" title="PL/I">PL/I</a></li>
<li><a href="Java_(programming_language)" title="Java (programming language)">Java</a></li>
<li><a href="Rexx" title="Rexx">REXX</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Interpreters">Interpreters</h3></div>
<p>Interpreter programs function by interpreting high-level code into machine useable code while simultaneously executing the instructions line by line. Unlike compilers, interpreters do not need to compile the code prior to executing the instructions. The translation and execution process are done simultaneously and is interrupted in the event of an error in the program. The use of an interpreter allows developers to test and modify code in real-time. It makes the debugging process easier as well as aids in making more efficient code. Since the translation and execution process is done simultaneously, the execution time for interpreter programs is substantial.<sup id="cite_ref-:0_5-1" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p><p>There are clear benefits when translating high-level code with an interpreter.
</p>
<ul><li>Since object code is not created in the interpretation process, less memory is required for the code.<sup id="cite_ref-:0_5-2" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup></li>
<li>Interpreter languages do not create machine-specific code and can be executed on any type of machine.<sup id="cite_ref-:2_7-2" class="reference"><a href="#cite_note-:2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li>
<li>The development and debugging process is typically quicker due to less complexity and it has more flexibility.<sup id="cite_ref-:2_7-3" class="reference"><a href="#cite_note-:2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup></li></ul>
<p>There are clear disadvantages when translating high-level code with an interpreter.<sup id="cite_ref-:2_7-4" class="reference"><a href="#cite_note-:2-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Programs require that an interpreter is installed on the machine in order to run and interpret it.</li>
<li>The execution time of the program is slower than a compiler.</li></ul>
<p>Some notable programming languages that utilize interpreters include:<sup id="cite_ref-:0_5-3" class="reference"><a href="#cite_note-:0-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li><a href="Python_(programming_language)" title="Python (programming language)">Python</a></li>
<li><a href="JavaScript" title="JavaScript">JavaScript</a></li>
<li><a href="Perl" title="Perl">Perl</a></li>
<li><a href="Ruby_(programming_language)" title="Ruby (programming language)">Ruby</a></li></ul>
<div class="mw-heading mw-heading3"><h3 id="Assemblers">Assemblers</h3></div>
<p>An assembler program functions by converting low-level assembly code into a conventional machine code that is readable by the CPU. The purpose of assembly language, like other coding languages, is to make the programming process more user-friendly than programming in machine language. Assembler languages utilize mnemonic devices and symbolic addresses to differentiate between opcode, operands, and specific memory addresses. Many of these components are not easily readable by humans and therefore mnemonics, symbols, and labels make the code decipherable. The assembler works by processing code one line at a time and then moves on to the next instruction. To eliminate issues that occur due to addressing locations, the translation process known as assembly is typically done in a two-pass process. The first pass of assembly is done in order to identify binary addresses that correspond to the symbolic names. This is essential in order to guide pass two which is the line-by-line translation into machine language.<sup id="cite_ref-:3_9-0" class="reference"><a href="#cite_note-:3-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup>
</p><p>Commonly used assemblers include:
</p>
<ul><li><a href="X86_assembly_language" title="X86 assembly language">x86 assembly languages</a> (used in Intel and AMD processors)<sup id="cite_ref-:4_10-0" class="reference"><a href="#cite_note-:4-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li>
<li><a href="ARM_Assembly_Language_Programming" class="mw-redirect" title="ARM Assembly Language Programming">ARM assembly language</a> (used in mobile devices)<sup id="cite_ref-:4_10-1" class="reference"><a href="#cite_note-:4-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li>
<li><a href="MIPS_architecture" title="MIPS architecture">MIPS</a> assembly language (used in gaming consoles)<sup id="cite_ref-:4_10-2" class="reference"><a href="#cite_note-:4-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li>
<li><a href="PowerPC" title="PowerPC">PowerPC</a> assembly language<sup id="cite_ref-:4_10-3" class="reference"><a href="#cite_note-:4-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li>
<li><a href="Little_Computer_3" title="Little Computer 3">LC-3</a> assembly language (used primarily in education to program the LC-3 computer) <sup id="cite_ref-:3_9-1" class="reference"><a href="#cite_note-:3-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Binary_translator" class="mw-redirect" title="Binary translator">Binary translator</a> (binary-to-binary, typically code)</li>
<li><a href="Assembly_language_translator" class="mw-redirect" title="Assembly language translator">Assembly language translator</a> (low-level source-to-source, code)</li>
<li><a href="Source-to-source_translator" class="mw-redirect" title="Source-to-source translator">Source-to-source translator</a> (high-level source-to-source, code)</li>
<li><a href="Rewriter" class="mw-redirect" title="Rewriter">Rewriter</a> (source-to-source, typically code)</li>
<li><a href="Source-code_formatter" class="mw-redirect" title="Source-code formatter">Source-code formatter</a> (source-to-source, typically code)</li>
<li><a href="File_converter" class="mw-redirect" title="File converter">File converter</a> (binary-to-binary, typically data)</li>
<li><a href="Transcoder" class="mw-redirect" title="Transcoder">Transcoder</a> (binary-to-binary, data)</li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-MCT-1"><span class="mw-cite-backlink">^ <a href="#cite_ref-MCT_1-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-MCT_1-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFThornton2017" class="citation web cs1">Thornton, Scott (2017-02-17). <a rel="nofollow" class="external text" href="http://www.microcontrollertips.com/compilers-translators-interpreters-assemblers-faq/">"What are compilers, translators, interpreters, and assemblers?"</a>. <i>MicrocontrollerTips</i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190719223609/https://www.microcontrollertips.com/compilers-translators-interpreters-assemblers-faq/">Archived</a> from the original on 2019-07-19<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-02-02</span></span>.</cite></span>
</li>
<li id="cite_note-Intel_1983_SH-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-Intel_1983_SH_2-0">^</a></b></span> <span class="reference-text"><cite class="citation book cs1">"Translators And Utilities For Program Development". <a rel="nofollow" class="external text" href="http://bitsavers.trailing-edge.com/components/intel/_dataBooks/230786-001_Intel_Software_Handbook_1984.pdf"><i>Software Handbook</i></a> <span class="cs1-format">(PDF)</span>. <a href="Intel_Corporation" class="mw-redirect" title="Intel Corporation">Intel Corporation</a>. 1984 [1983]. p. 3-1. 230786-001. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200129010534/http://bitsavers.trailing-edge.com/components/intel/_dataBooks/230786-001_Intel_Software_Handbook_1984.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2020-01-29<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-01-29</span></span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><cite id="CITEREFBeaulieu2022" class="citation web cs1">Beaulieu, Adrien (2022). <a rel="nofollow" class="external text" href="https://product.house/front-end-and-back-end-technologies-the-importance-of-proficiency-in-multiple-programming-languages/">"A15. Front-End and Back-End Technologies: The Importance of Proficiency in Multiple Programming Languages"</a>.</cite></span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><cite id="CITEREFPagadala2004" class="citation web cs1">Pagadala, Santosh Kumar (2004). <a rel="nofollow" class="external text" href="https://researchrepository.wvu.edu/cgi/viewcontent.cgi?article=2455&context=etd">"Portable implementation of computer aided design environment for composite structures"</a>.</cite></span>
</li>
<li id="cite_note-:0-5"><span class="mw-cite-backlink">^ <a href="#cite_ref-:0_5-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:0_5-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:0_5-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:0_5-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.geeksforgeeks.org/language-processors-assembler-compiler-and-interpreter/">"Language Processors: Assembler, Compiler and Interpreter"</a>. <i>GeeksforGeeks</i>. 2018-08-09<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-15</span></span>.</cite></span>
</li>
<li id="cite_note-:1-6"><span class="mw-cite-backlink">^ <a href="#cite_ref-:1_6-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:1_6-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://lambda.uta.edu/cse5317/notes/short.html">"CSE 5317/4305: Design and Construction of Compilers"</a>. <i>lambda.uta.edu</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-15</span></span>.</cite></span>
</li>
<li id="cite_note-:2-7"><span class="mw-cite-backlink">^ <a href="#cite_ref-:2_7-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:2_7-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:2_7-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:2_7-3"><sup><i><b>d</b></i></sup></a> <a href="#cite_ref-:2_7-4"><sup><i><b>e</b></i></sup></a></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://adacomputerscience.org/concepts/trans_assembler_compiler_interpreter?examBoard=all&stage=all">"Translator Types"</a>. <i>Ada Computer Science</i>. 2024-03-15<span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-15</span></span>.</cite></span>
</li>
<li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.ibm.com/docs/en/zos-basic-skills?topic=zos-compiled-versus-interpreted-languages">"Compiled versus interpreted languages"</a>. <i>www.ibm.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-15</span></span>.</cite></span>
</li>
<li id="cite_note-:3-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-:3_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:3_9-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFPattPatel2019" class="citation book cs1">Patt, Yale; Patel, Sanjay (2019-08-15). <i>Introduction to computing systems: From bits & gates to C/C++ & Beyond</i> (3rd ed.). New York, NY: McGraw-Hill. pp. <span class="nowrap">231–</span>243. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-1260150537</bdi>.</cite></span>
</li>
<li id="cite_note-:4-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-:4_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-:4_10-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-:4_10-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-:4_10-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFStokoe2024" class="citation journal cs1">Stokoe, William (2024-05-06). <span class="id-lock-subscription" title="Paid subscription required"><a rel="nofollow" class="external text" href="https://www.lenovo.com/us/en/glossary/assembly-language/">"sign language structure"</a></span>. <i>Annual Review of Anthropology</i>. <b>9</b>: <span class="nowrap">365–</span>390. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1146%2Fannurev.an.09.100180.002053">10.1146/annurev.an.09.100180.002053</a><span class="reference-accessdate">. Retrieved <span class="nowrap">2024-03-15</span></span>.</cite></span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="Further_reading">Further reading</h2></div>
<ul><li><cite id="CITEREFCalingaert1979" class="citation book cs1 cs1-prop-location-test">Calingaert, Peter (1979) [1978-11-05]. Written at <a href="University_of_North_Carolina_at_Chapel_Hill" title="University of North Carolina at Chapel Hill">University of North Carolina at Chapel Hill</a>. <a href="Ellis_Horowitz" title="Ellis Horowitz">Horowitz, Ellis</a> (ed.). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=x84mAAAAMAAJ"><i>Assemblers, Compilers, and Program Translation</i></a>. Computer software engineering series (1st printing, 1st ed.). Potomac, Maryland, USA: <a href="Computer_Science_Press%2C_Inc." class="mw-redirect" title="Computer Science Press, Inc.">Computer Science Press, Inc.</a> <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-914894-23-4</bdi>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/0888-2088">0888-2088</a>. <a href="LCCN_(identifier)" class="mw-redirect" title="LCCN (identifier)">LCCN</a> <a rel="nofollow" class="external text" href="https://lccn.loc.gov/78-21905">78-21905</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20200320183710/https://books.google.de/books?id=x84mAAAAMAAJ&redir_esc=y">Archived</a> from the original on 2020-03-20<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-03-20</span></span>.</cite> (2+xiv+270+6 pages)</li>
<li><cite id="CITEREFPring-Mill2018" class="citation web cs1">Pring-Mill, David (2018-03-04). <a rel="nofollow" class="external text" href="https://singularityhub.com/2018/03/04/why-hasnt-ai-mastered-language-translation/#sm.00000g1rmbl85mcrmqbgjyoco3zrf">"Why Hasn't AI Mastered Language Translation?"</a>. <i>Singularity Hub</i>. <a href="Singularity_University" class="mw-redirect" title="Singularity University">Singularity University</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20191229055424/https://singularityhub.com/2018/03/04/why-hasnt-ai-mastered-language-translation/#sm.00000g1rmbl85mcrmqbgjyoco3zrf">Archived</a> from the original on 2019-12-29<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-02-02</span></span>.</cite></li>
<li><cite id="CITEREFEdwards2013" class="citation web cs1">Edwards, Stephen A. (Fall 2013). <a rel="nofollow" class="external text" href="http://www1.cs.columbia.edu/~sedwards/classes/2013/w4115-fall/processors.pdf">"Language processors"</a> <span class="cs1-format">(PDF)</span>. <a href="Columbia_University" title="Columbia University">Columbia University</a>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190624175913/http://www1.cs.columbia.edu/~sedwards/classes/2013/w4115-fall/processors.pdf">Archived</a> <span class="cs1-format">(PDF)</span> from the original on 2019-06-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-02-02</span></span>.</cite></li>
<li><cite id="CITEREFTuckerBelford" class="citation encyclopaedia cs1">Tucker, Allen; Belford, Geneva G. <a rel="nofollow" class="external text" href="http://www.britannica.com/EBchecked/topic/130675/computer-science/168860/High-level-languages">"Computer science"</a>. <i><a href="Encyclop%C3%A6dia_Britannica" title="Encyclopædia Britannica">Encyclopædia Britannica</a></i>. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20190723203047/https://www.britannica.com/science/computer-science">Archived</a> from the original on 2019-07-23<span class="reference-accessdate">. Retrieved <span class="nowrap">2020-02-02</span></span>.</cite></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-16" href="https://en.wikipedia.org/wiki/?title=Translator_(computing)&oldid=1300840791">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>